import Vue from 'vue'
import moment from 'moment'
import 'moment/locale/zh-cn'
moment.locale('zh-cn')

Vue.filter('NumberFormat', function (value) {
  if (!value) {
    return '0'
  }
  const intPartFormat = value.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
  return intPartFormat
})

Vue.filter('dayjs', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
  return moment(dataStr).format(pattern)
})

Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
  return moment(dataStr).format(pattern)
})

Vue.filter('currency', function (value) {
  if (!value) return '$0.00'
  // 将值转换为字符串并移除两端的空格
  const stringValue = `${value}`.trim()

  // 将值转换为数值，并保留两位小数
  const numberValue = parseFloat(stringValue)
  const intPart = Math.trunc(numberValue).toString() // 获取整数部分
  const intLen = intPart.length // 整数部分的长度
  const decPart = (numberValue - intPart).toFixed(2).slice(2) // 获取小数部分并格式化
  let result = ''
  if (intLen > 3) {
    result = `${intPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',')}.${decPart}`
  } else {
    result = `${intPart}.${decPart}`
  }

  return '￥' + result
})

Vue.filter('dealConvert', function (value) {
  if (value.toUpperCase() === 'PERSONAL') {
    return '个人支付'
  } else if (value.toUpperCase() === 'RENT') {
    return '月租支付'
  } else if (value.toUpperCase() === 'DEPARTMENTAL') {
    return '部门代付'
  } else {
    return '未知'
  }
})
